package com.warehouse.service;

import com.warehouse.entity.StockOut;
import java.time.LocalDateTime;
import java.util.List;

public interface StockOutService {
    
    List<StockOut> getAllStockOuts();
    
    StockOut getStockOutById(Long id);
    
    List<StockOut> getStockOutsByOrderId(Long orderId);
    
    List<StockOut> getStockOutsByProductId(Long productId);
    
    List<StockOut> getStockOutsByDateRange(LocalDateTime startTime, LocalDateTime endTime);
    
    List<StockOut> getStockOutsByCustomer(String customer);
    
    List<StockOut> getStockOutsByStatus(String status);
    
    StockOut createStockOut(StockOut stockOut);
    
    boolean createStockOutBatch(List<StockOut> stockOuts);
    
    boolean createStockOutFromOrder(Long orderId, String operator);
    
    boolean processStockOut(Long stockOutId, String operator);
    
    boolean updateStockOut(StockOut stockOut);
    
    boolean deleteStockOut(Long id);
} 